#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
简单使用示例
演示如何使用大模型API进行基本对话
"""

from chat_client import ChatClient
from config import API_CONFIG, SYSTEM_PROMPTS


def main():
    """主函数"""
    # 创建聊天客户端
    client = ChatClient(
        api_key=API_CONFIG["api_key"],
        base_url=API_CONFIG["base_url"],
        model=API_CONFIG["model"]
    )
    
    print("=== 大模型API调用示例 ===\n")
    
    # 示例1: 基本对话
    print("示例1: 基本对话")
    print("-" * 30)
    response = client.simple_chat("你好，请介绍一下你自己")
    print(f"用户: 你好，请介绍一下你自己")
    print(f"助手: {response}\n")
    
    # 示例2: 编程问题
    print("示例2: 编程问题")
    print("-" * 30)
    response = client.simple_chat(
        "如何用Python创建一个简单的HTTP服务器？",
        SYSTEM_PROMPTS["programmer"]
    )
    print(f"用户: 如何用Python创建一个简单的HTTP服务器？")
    print(f"助手: {response}\n")
    
    # 示例3: 流式输出
    print("示例3: 流式输出")
    print("-" * 30)
    print("用户: 请解释什么是人工智能")
    print("助手: ", end="", flush=True)
    
    messages = [{"role": "user", "content": "请解释什么是人工智能"}]
    for chunk in client.chat_stream(messages):
        print(chunk, end="", flush=True)
    print("\n")
    
    # 示例4: 高级参数
    print("示例4: 高级参数使用")
    print("-" * 30)
    messages = [{"role": "user", "content": "请写一个Python函数来计算两个数的最大公约数"}]
    response = client.chat(
        messages=messages,
        max_tokens=500,
        temperature=0.3,  # 降低温度以获得更确定性的输出
        frequency_penalty=0.2,
        presence_penalty=0.1
    )
    
    if response and response.choices:
        print(f"用户: 请写一个Python函数来计算两个数的最大公约数")
        print(f"助手: {response.choices[0].message.content}")


if __name__ == "__main__":
    main()
